Integrated circuit, micro-controller unit, and method including a synchronous sampling controller

ABSTRACT

A micro-controller unit (MCU) includes an analog-to-digital converter (ADC) including an input, a timing input, and an output. The input of the ADC is configurable to couple to an output of a peripheral module. The MCU further includes a synchronous sampling controller configured to provide a clock signal to a clock output terminal configurable to couple to a clock input of the peripheral module. The synchronous sampling controller is further configured to provide a timing signal to the timing input of the ADC to synchronize sampling of a signal at the input of the ADC to timing of the peripheral module.

FIELD

This disclosure relates generally to integrated circuits that areconfigured to connect to one or more peripheral circuits, and moreparticularly to integrated circuits that control synchronous operationof one or more peripheral circuits.

BACKGROUND

An integrated circuit including a micro-controller unit (MCU) can beconfigured to couple to multiple external signal sources, such asscanners, video cameras, audio input devices, sensors, and other datasources. Control of clocked external signal sources that provide inputto an analog-to-digital converter (ADC) often includes logic circuitry,typically external to the MCU, along with internal timers and counters.Configuration of such logic circuitry uses additional input/output (I/O)and control functions in the MCU, including interrupts, clocking, andthe like.

SUMMARY

In an embodiment, a micro-controller unit (MCU) includes ananalog-to-digital converter (ADC) including an input, a timing input,and an output. The input of the ADC is configurable to couple to anoutput of a peripheral module. The MCU further includes a synchronoussampling controller configured to provide a clock signal to a clockoutput terminal configurable to couple to a clock input of theperipheral module. The synchronous sampling controller is furtherconfigured to provide a timing signal to the timing input of the ADC tosynchronize sampling of a signal at the input of the ADC to timing ofthe peripheral module.

In another embodiment, an integrated circuit includes a firstanalog-to-digital converter (ADC) configured to receive a first signalfrom a first source and a second ADC configured to receive a secondsignal from a second source. The integrated circuit further includes asynchronous sampling generator configured to provide a timing signal tosynchronize the first and second ADCs to perform synchronized samplingof the first and second signals.

In still another embodiment, a method includes receiving a first datasignal at a first input terminal of a circuit, receiving a second datasignal at a second input terminal of the circuit, and providing a firstpixel clock signal to a timing input of a first analog-to-digitalconverter (ADC) using a synchronous sampling controller. The methodfurther includes providing a second pixel clock signal to a timing inputof a second ADC using the synchronous sampling controller. The first andsecond pixel clock signals synchronize sample timing of the first andsecond ADCs.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is block diagram of a system having a control circuit including asynchronous sampling generator and coupled to multiple peripheralcircuits.

FIG. 2 is a block diagram of a portion of the integrated circuit of FIG.1 illustrating functional blocks of the synchronous sampling generator.

FIG. 3 is a logic diagram of an exemplary embodiment of a synchronoussampling generator.

FIG. 4 is a timing diagram of a signal received by the integratedcircuit of FIG. 1.

In the following description, the use of the same reference numerals indifferent drawings indicates similar or identical items.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

Embodiments of a circuit are disclosed that includes an MCU and thatutilizes a synchronous sampling generator (SSG or synchronous samplingcontroller) to synchronize an ADC to timing of peripheral devicescoupled to the circuit. The SSG is tightly coupled with the ADC's statelogic, resulting in improved performance in terms of the effectivespeed, reduced latency, and ease of use. In many applications, the SSGcan synchronize the integrated circuit and external peripherals withoutexternal logic circuitry. Further, the SSG also makes it possible tosynchronize the integrated circuit to timing of external peripheralswithout extra input/output (I/O) pins, interrupt mechanisms, and/orclock sources, which might otherwise be used to provide suchfunctionality. Further, the SSG eliminates external logic circuitry forsynchronizing sampling operations among multiple converters by using amulti-phase clock, performing a pre-determined number of samplegenerations and conversions, mixing automated sampling operations withMCU-control operations, and synchronizing multiple types of signalconverters and generators. An example of a system including anintegrated circuit having an SSG is described below with respect to FIG.1.

FIG. 1 is block diagram of a system 100 that has a control circuit 102including a synchronous sampling generator 122 where control circuit 102is coupled to multiple peripheral circuits, such as line scan cameramodules 106 and 108. Line scan camera modules 106 and 108 areillustrative examples of peripheral devices that can be used inconjunction with circuit 102. In other embodiments, one or more of thecamera modules 106 and 108 can be omitted and/or replaced with otherdevices or circuits.

Control circuit 102 includes multiple terminals or pads 123, 125, 127,129, and 131 for coupling the integrated circuit 102 to a universalserial bus (USB) interface 104, which may be coupled to a peripheraldevice or to a host system. Pad 131 is coupled to ground, and pads 123and 125 are coupled to a voltage bus. Pads 127 and 129 are coupled tophysical transport lines of USB interface 104. Control circuit 102further includes pads 101, 103, 105, 107, 109, 111, 113, 115, 117, 119,and 121. System 100 further includes a resistor 110 including a firstterminal coupled to pad 101, and a second terminal coupled to pad 103.System 100 further includes a transistor 112 including a first electrodecoupled to pad 103, a control terminal coupled to pad 105, and a secondelectrode coupled to pad 107.

Line scan camera module 106 includes a supply input coupled to pad 109and 107, an LED control input coupled to pad 111, and a clock inputcoupled to pad 115. Line scan camera module 106 further includes a videooutput coupled to pad 119. Line scan camera module 108 includes a supplyinput coupled to pad 109 and 107, an LED control input coupled to pad113, and a clock input coupled to pad 117. Line scan camera module 108further includes a video output coupled to pad 121.

Control circuit 102 includes a voltage regulator 112 coupled to pad 123and is configured to provide a regulated voltage to on-chip circuitry.Control circuit 102 further includes a USB physical layer circuit 114coupled to pads 127 and 129. USB physical layer circuit 114 communicatesdata to and from control circuit 102 to USB interface 104. Controlcircuit 102 also includes an external regulator control 116 having aninput coupled to an output of a differential amplifier 118, which has afirst input coupled to pad 101 and a second input coupled to pad 103.External regulator control 116 further includes an output coupled to aninput of a differential amplifier 120, which has a second input coupledto pad 107 and an output coupled to pad 105.

Control circuit 102 further includes a synchronous sampling generator(SSG) 122 including outputs coupled to pads 115 and 117 and to ADCs 132and 134. SSG 122 further includes an input/output coupled to a highcurrent driver 124. High current driver 124 including a first outputcoupled to driver 126, which has a power input coupled to pad 109 and anoutput coupled to pad 111. High current driver 124 includes a secondoutput coupled to driver 128, which has a power input coupled to pad 109and an output coupled to pad 113. Control circuit 102 also includes acurrent-to-voltage (I-to-V) converter stages circuit 130 having inputscoupled to pads 119 and 121 and outputs coupled to ADC circuits 132 and134. ADC 132 includes a timing control input coupled to an output of SSG122 for receiving a phase-delayed timing signal. ADC 134 also includes atiming control input coupled to an output of SSG 122 for receiving aphase-delayed timings signal. Each of ADCs 132 and 134 includes anoutput coupled to an advanced peripheral bus (APB) 136, which is coupledto SSG 122. APB 136 is also coupled to a direct memory access (DMA)controller 138 and to a static random access memory (SRAM) 140.

In an example, high current drivers 124 provide current to drivers 126and 128, which drive signals onto pads 111 and 113, respectively. Driver126 drives a light emitting diode (LED) driver signal to pad 111 and toline scan camera module 106. Driver 128 drives an LED driver signal topad 113 and to line scan camera module 108. SSG 122 controls sampletiming of ADCs 132 and 134 to perform synchronized interleaved sampling.SSG 122 further includes logic for generating a clock signal forexternal devices or peripheral modules, such as line scan camera modules106 and 108, which clock signal is provide to pads 115 and 117 and whichis synchronized to the internal sampling clock used by one or both ADCs132 and 134. In a particular embodiment, SSG 122 controls ADCs 132 and134 to perform interleaved sampling of the same input, which can providea sample rate of twice that of each individual ADC 132 or 134. Forexample, in an implementation where ADCs 132 and 134 are capable of onemega-sample per second (MSPS) rates, SSG 122 can control ADCs 132 and134 to perform interleaved, 2 MSPS sampling of the same input. Anexample of an embodiment of SSG 122 is described below with respect toFIG. 2.

FIG. 2 is a block diagram of a portion 200 of the control circuit 102 ofFIG. 1 illustrating functional blocks of SSG 122. Portion 200 includesAPB 136 coupled to ADCs 132 and 134 and to SSG 122. Further, portion 200includes an analog input multiplexer bus 202, which is coupled to inputsof ADCs 132 and 134. In the example of FIG. 1, current-to-voltageconverter 130 provided the input to ADCs 132 and 134; however, in thisexample, the input voltages may be multiplexed and provided to theinputs of ADCs 132 and 134. In this instance, ADC 132 includes asuccessive approximation register (SAR) 212, a controller 214, a directmemory access (DMA) controller 216, and a first-input-first-output(FIFO) register 218. ADC 134 includes a SAR 222, a controller 224, a DMAcontroller 226, and a FIFO register 228. SARs 212 and 222 operate underthe control of controllers 214 and 224, respectively, and convertcontinuous analog waveforms into discrete digital representations. Thedigital representations can be stored in FIFO registers 218 and 228 andwritten directly to a memory location in SRAM 140 or another memory viaAPB 136.

SSG 122 includes a pulse generator 208 for providing a pixel clocksignal synchronized using an ADC synchronization controller 204 tosynchronize the ADC capture/convert operations. While FIG. 1 depictsline scan camera modules 106 and 108, the term “pixel clock signal” isnot restricted to camera applications. Instead, the term “pixel clocksignal” refers to a clock signal that may be different from the clockpulses provided to the peripheral devices and can be used with anysystem that generates a sequence of voltage or current values inresponse to the clock signal. SSG 122 further includes a phase delaygenerator 206 and a pixel counter 210. SSG 122 generates a clock signalthat can be provided to an external device, such as a camera via pad 115(for example). SSG 122 can also generate a pixel “clock” signal that isprovided to ADC 132 and/or ADC 134 that is optionally phase delayedbased on signals from phase delay generator 206. The pixel clock signalcontrols sample timing of ADCs 132 and 134 to sample pixel values fromline scan camera modules 106 and 108. In an example, phase delaygenerator 206 is configurable to divide the clock phase of signalsproduced by pulse generator into 16 discrete phases, which can beconfigured to delay the clock signal. In an example, the peripheraldevice has a canonical number of bits, and pixel counter 210 is used tocount the pulses such that SSG 122 knows when ADCs 132 and 134 havesampled the number of pixels scanned by line scan camera modules 106 and108.

In this example, the clock signal provided by SSG 122 to ADCs 132 and134 is a pixel clock signal synchronized to the ADC capture/convertcycle. Phase delay generator 208 provides a programmable delay timebetween the pixel clock edge (as generated by pulse generator 208) andthe ADC conversion-start event. SAR synchronization control 204 usesphase delay generator 206 to provide different data transfer timing foreach of ADCs 132 and 134, which data transfer timing can correspond tothe transfer timing of the corresponding peripheral device. In anexample, pulse generator 208 and clock control lines coupling SSG 122 toADCs 132 and 134 can be controlled by instructions executed by an MCU,so that control signaling can be performed during times when data is notbeing sampled. By providing DMA controllers 216 and 226, ADCs 132 and134 can provide efficient, low-overhead data transfer from ADCs 132 and134 to memory.

In an embodiment, SSG 122 has a programmable threshold for determiningthe number of sample clocks per frame of data transferred by theperipheral device. SSG 122 can compare the count of pixel counter 210 tothe programmable threshold (frame threshold) to determine when the datatransfer is complete (i.e., when the end of a frame is reached). In oneinstance, the number of sample clocks per frame is variable over a widerange of frame sizes, up to, for example, 4096 pixels, allowing SSG 122to operate with a wide array of sensors.

Pulse generator 208 is not frequency-critical. In one instance, pulsegenerator 208 operates at a high enough frequency to operate ADCs 132and 134 at their maximum sampling rates, such as one pixel clockcycle/conversion per pixel. The clock rate for control operations mayalso be frequency-independent. In some systems, the amount ofnon-pixel-clock signaling per frame between SSG 122 and ADCs 132 and 134(after initial setup) can be very low, such as a few bits sent beforeand after a complete frame transfer. Further, SSG 122 can reduce powerto pulse generator 206 so that the pixel clock can be quiescent when theperipheral device is not in use.

In an example, stream-processing of pixel data by ADCs 132 and 134 ispreceded by a series of operations, including a sensor reset operation,dark-level sensing, active adjustment, illumination control, and otheroperations that can vary with each particular peripheral device.

FIG. 3 is a partial block diagram and partial logic diagram of anexemplary embodiment of SSG 122, which is implemented as a statemachine. SSG 122 includes a synchronization register 302 including aninput for receiving a mode control signal, which specifies whether SSG122 operates in a free run mode, a 1× mode or a 2× mode. SSG 122 furtherincludes a phase counter 304, a conversion counter 306, a pulsegenerator 308, and a clock/control signal controller 309.Synchronization register 302 includes an output coupled to an input ofphase counter 304, which is a 4-bit free running phase counter, clockedat the nominal clock speed by a clock signal (CLKm_DIV) supplied by theSSG 122. Phase counter 304 may be free-running or it may be programmedto generate a defined number of phase cycles. Because each phase cycleis typically used to start a conversion, the number of phase cycles isequal to the number of conversions that are performed by an ADC, such asADC 132 or 134, under the control of SSG 122 in a defined set of cycles.In one example, phase counter 304 is clocked at approximately 16 MHz.Counting-up from zero, phase counter 304 marks sixteenequally-spaced-in-time events each microsecond for one or two ADCs 132and 134, and provides the equally-spaced-in-time events via a four-bitphase signal (SSG_ph[3:0]). SSG 122 further includes a conversioncounter 306, which operates as a 12-bit, programmable up-counter. Loadedat the start of a series of conversions, conversion counter 306increments once each time the phase counter 304 overflows. At each count(and once at zero), a sample cycle start can be generated by the SSG 122and sent to the ADCs 132 and 134. Conversion counter 306 provides anoutput to pulse generator 308. Pulse generator 308 includes an inputcoupled to synchronization register 302 and an input coupled toclock/control signal controller 309. Pulse generator 308 includes anoutput coupled to a node 311.

SSG 122 further includes clock/control signal controller 309 includingAND gates 320, 322, 324, and 326 and exclusive-OR gates 330, 332, 334,and 336. Each AND gate 320, 322, 324, and 326 includes a first inputcoupled to node 311, a second input coupled to node 313, and an output.Each exclusive-OR gate 330, 332, 334, and 336 includes a first inputcoupled to the output of one of AND gates 320, 322, 324, and 326 and asecond input coupled to a node 315. The output of AND gate 320 iscoupled to the first input of exclusive-OR gate 330. The output of ANDgate 322 is coupled to the first input of exclusive-OR gate 332. Theoutput of AND gate 324 is coupled to the first input of exclusive-ORgate 334. The output of AND gate 326 is coupled to the first input ofexclusive-OR gate 336.

Clock/control signal controller 309 further includes an OR gate 328including multiple inputs coupled to node 313 and an output coupled toan input of synchronization circuit 314 and to a control input of a“pixel count” register 316. Synchronization circuit 314 and “pixelcount” register 316 include an input coupled to an APB interface.Synchronization circuit 314 includes an output coupled to pulse startcontrol circuit 312, which has an output coupled to a control input of adecrementer circuit 310. Decrementer 310 includes a clock input forreceiving a pixel clock signal (CLKm_div), an input coupled to theoutput of “pixel count” register 316, and an output coupled to pulsegenerator 308. In a “1×” mode, decrementer 310 decrements a count witheach pixel clock pulse. In a “2×” mode, decrementer 310 decrements thecount with every second pixel clock pulse (i.e., pixel clock pulsesoccur at two times the decrement rate).

In an example, programmable pulse generator 308 creates a 50% duty cyclepulse once at each count (and once at zero) after the conversion counter306 is triggered. Clock/control signal generator 309 providesregister-driven logic allowing software to control the operation of fouroutputs (SSG_Out[0], SSG_Out[1], SSG_Out[2], and SSG_Out[3]) from theSSG 122 to external devices. Clock/control signal generator 309 allowsthe register settings to define whether (or not) the output is driven bythe pulse generator 308, to set the polarity of the pulses (viaexclusive-OR gates 330, 332, 334, and 336), and to set the output levelof the four outputs when the pulse generator 308 is not running so thatthe outputs are not floating.

In one possible implementation, SSG 112 is coupled to a non-contactlocation sensing system or non-contact sensor. In an example, such anon-contact location sensing system or non-contact sensor can utilizelinear image sensors to detect the location of an object. In an example,the linear image sensor is a linear array of photocells (1×256, 1×512, .. . , 1×4096). Each photocell generates a voltage or currentproportional to the incident light received during a period of lightintegration (shutter open). The collected voltages or currents are thenserially transmitted to an ADC, such as ADC 132 or 134 for conversion todigital form. Linear image sensors are used in applications such as pagescanning, facsimile, optical carriage recognition (OCR), bar-codereading, position detection and decoding, spectroscopy and contactimaging, and other high-rate sampled-data systems. Typically, directcontrol of linear image sensors varies with each sensor. By utilizingfirmware to perform much of the detailed sensor configuration, thecircuit is flexible with respect to options for connecting a wide rangeof synchronously sampled sensors to ADCs 132 and 134.

SSG 122 makes it possible to connect multiple ADCs (such as ADCs 132 and134) together to perform synchronized interleaved sampling. Further, SSG122 can output a clock signal to pins for use by external devices (suchas pads 115 and 117 in FIG. 1), where the clock signal is synchronizedto the internal sampling clock (pixel clock) used by any number of ADCs132 and 134.

In operation, SSG 122 generates a time-base for synchronizing anexternal sample source with one or more ADCs 132 and 134. The time-baserate is programmable, and its maximum cycle time is equal to the highestsample rate of ADC 132 or 134. Each cycle time is broken into sixteentime slots using phase counter 304. The start of each cycle is markedfor external reference by a pulse, available at the device pins. SSG 122provides each ADC 132 and 134 with clock phase timing signals(CLKm_div). Each ADC 132 and 134 may be programmed to trigger itsconversion operation based on any of the sixteen possible phases.

Typically, the external reference pulse is used by an external datasource to clock-out analog samples for input to ADCs 132 and 134. Theexternal source's dwell time (the delay between the start of the pulseand the accurate settling of the analog sample it supplies to the ADC132 or 134) determines which phase number is programmed into a ADC 132or 134 for its conversion start time.

Pulse generator 308 creates a square wave pulse (optional polarity) thatis available at the device pins or pads 115 and 117. In one example,pulse generator 308 operates on a timing signal supplied by ADC 132. Ifthe timing signal is not running, the clocking function of SSG 122 willnot operate, but the peripheral bus registers and the output datacontrol functions (ssg_dat) on node 315 can still be used. In anexample, enabling the ADC 132 also turns on the timing signal to the SSG122. Typically, if there are no SAR data conversions taking place, thegenerator performs no clocking functions.

In a particular example, ADCs 132 and 134 can be configured so thattheir start-of-conversion times are controlled by a phase in thesequence of SSG-generated phases from phase generator 304. MultipleADCs, such as ADCs 132 and 134, can be synchronized in this manner,either to begin conversion at the same moment or at times offset fromeach other (if each ADC is programmed to start its conversion on adifferent phase).

In an example, SSG 122 generates an external sample data (pixel) clockthat is synchronous to conversion operations of ADCs 132 and 134. SSG122 includes a simple state machine for controlling up to four sensorchannels, providing control of four linear image sensors, or two imagesensors each having odd and even pixel data channels. ADCs 132 and 134convert pixels at a rate of approximately 2M pixels per second (total).DMAs 216 and 226 can be used to transfer these samples from the ADCs 132and 134 to memory during the frame acquisition period.

Pulse generator 308 produces a square-wave pulse train (or clock) thatcan be used as the pixel clock. Pulse generator 308 derives the pulsesfrom the 16 MHz (nominal) SAR clock (clkm_div). Software executed by theMCU controls timing of the pulse generation and controls the delivery ofthe clock pulses to selected pins or pads. Pulse generator 308 providesthe pixel clock signal at one of two frequencies: standard (1×) and fast(2×) (i.e., CLKm_div/16 or CLKm_dev/8). At the standard (1×) pixel clockrate, ADCs 132 or 134 converts one pixel voltage at a time (1 MSPS). Inanother example, two ADCs 132 and 134 can operate in parallel and can beconnected to two sensors, and ADCs 132 and 134 convert two pixelvoltages at a time (2 MSPS). At the 2× pixel clock rate (2 MHz), bothADCs 132 and 134 are configured to operate in interleaved mode toconvert pixel voltages from a single sensor, at a rate of 2 MSPS. Aregister bit (ssg_(—)2×) enables the 2× pixel clock rate. At the 2×pixel clock rate, if the “pixel count” register (ssg_cnt) 316 is used,its value equals one-half of the number of clock pulses generated.

In operation, each time pixel generator 308 generates a pulse, SSG 122generates a cycle start signal to one or both ADCs 132 and/or 134(depending on the mode). The timing of the ADC conversion start commandis controlled internal to each ADC 132 and 134 by sampling time selectbits, allowing the start of conversion to be delayed by a variableamount of time after the assertion of the pixel clock pulse, whichallows ADC tracking to be optimally matched to the clocked externalsensor. The value in register bits ssg_ph[3:0] (cleared at reset and ADCdisabled) indicates the current state of the phase counter 304 sent tothe ADCs 132 and 134 (as number of counts of the ADC timing clock,clkm_div).

The pixel clock generator creates four outputs, ssg_out[3:0]. Theselines are distributed through a crossbar. The pixel clock is not drivenonto the ssg_out[3:0] lines unless a register bit (ssg_ckc[3:0]) is set.Setting any of the ssg_ckc register bits at node 315 causes pulsegenerator 308 to begin a frame sequence of pulses. Setting any of thessg_ckc bits while a frame sequence is already in progress has no effecton the operation of the pulse generator 308. At the end of a framesequence, the ssg_ckc bits on node 315 are cleared in software(ssg_ckc[3:0]=4′h0), causing pulse generator 308 to return to the idlestate. When the pulse generator 308 is not operating, or the clock isnot enabled to drive the outputs, the clock signal to those outputs islow if the ssg_dat[3:0] bits are at logic low levels for that particularoutput. Otherwise, if the ssg_dat[3:0] bits are at a logic high levelfor the particular output, the quiescent level of the clock output isalso high.

Software can control the state of ssg_out[3:0] lines via control bits(ssg_dat[3:0]), which bits invert the state of the lines. When ssg_outlines are quiescent, (pulse generator 308 is disabled), setting ssg_datcauses ssg_out to be driven high (clearing ssg_dat in this case causesssg_out to then return to a low state). Leaving ssg_dat high while thepixel clock is enabled causes pulse generator 308 to be inverted, whichallows for direct clocking of sensors requiring a negative-phasesampling clock.

When pulse generator 308 is enabled, it creates a programmed number ofsequential conversion pulses, which can be referred to as a conversion“frame”. A linear image sensor with 512 elements might be expected torequire 512 pixel clock pulses per frame since a pulse is used to shiftout a voltage sample for each element in the detector, but the number ofrequired pulses may be larger or smaller depending on the number ofwhite/dark/blocking/reference cells that may be clocked out forsampling. A 12-bit “pixel count” register (ssg_cnt[11:0]) 316 programsthe number of pulses to be sent per frame, which can be set to thenumber of conversion minus one. For a single pulse, pixel count register316 is set to zero, and for 4096 pulses, pixel count register 316 is setto FFF).

In general, the phase counter 304 divides the clock into 16 differentphases for sampling, which makes it possible to select a sampling timethat corresponds to a suitable point in the signal. For example, if theanalog signal has a slope that resembles a signal having aresistive/capacitive time constant, it may be desirable to sample theanalog signal closer to its peak value or its lowest value. An exampleof a timing diagram that depicts an analog waveform is described belowwith respect to FIG. 4.

FIG. 4 is a timing diagram 400 of a signal received by the controlcircuit 102 of FIG. 1. Diagram 400 illustrates an ideal, square wavesignal 402 that has an amplitude corresponding to a color value betweenblack and white for each pixel of an array of pixels. Diagram 400further illustrates an analog signal 404 that increases and decreasesfrom pixel to pixel that has a slope resembling a resistive-capacitivetime constant. Phase counter 304 makes it possible to divide the sampletime for each frame so that the sample is taken at a point in time (suchas generally indicated at 408), where the amplitude of the analog signal404 is approximately at a local peak or local low level.

In one implementation, some peripheral devices, such as sensors(cameras), can have two shutter periods, one for ambient light and onefor LED-illuminated conditions. In this implementation, the sensor cansubtract the data from the two conditions internally, outputting thedifference, or it can output both readings. In this example, controlcircuit 102 controls the sensor shutters coupled to control circuit 102to turn on at the same time for the ambient sensing, and then controlsthe sensors' shutters to turn on sequentially for the illuminatedreading. This sequential illumination uses a relatively long delaybetween the two shutter periods for all but the first sensor. In thisexample, control circuit 102 can utilize instructions executed by an MCUto control the shutter periods and sequential timing.

In a particular example, SSG 122 produces clock pulses at a frequency ofapproximately 1 MHz. In one example, about 550 pulses are used to samplethe sensor data. For sensors with two shutter times, about 1100 pulsesare used to sample the sensor data if the customer wants both ambientand illuminated data output from the sensor.

In conjunction with the circuits and methods described above withrespect to FIGS. 1-4, a system is disclosed that includes one or moresensors coupled to a control circuit. The control circuit includes anSSG coupled to one or more pads for providing a clock signal and coupledto one or more ADCs to provide a pixel clock signal. The SSG provides aclock signal for clocking data from the sensors to input pins. Further,the SSG synchronizes the ADCs to the clock signal and sensor delaysusing pixel clock signal to control sampling of the sensor data.

Although the present invention has been described with reference topreferred embodiments, workers skilled in the art will recognize thatchanges may be made in form and detail without departing from the scopeof the invention.

What is claimed is:
 1. A micro-controller unit (MCU) comprising: ananalog-to-digital converter (ADC) including an input, a timing input,and an output, the input configurable to couple to an output of aperipheral module; and a synchronous sampling controller configured toprovide a clock signal to a clock output terminal configurable to coupleto a clock input of the peripheral module, the synchronous samplingcontroller configured to provide a timing signal to the timing input ofthe ADC to synchronize sampling of a signal at the input of the ADC totiming of the peripheral module.
 2. The MCU of claim 1, furthercomprising: a second ADC including an input to receive a second signalfrom a second peripheral module, a timing input coupled to thesynchronous sampling generator and an output; and wherein thesynchronous sampling controller controls timing of the ADC and thesecond ADC to perform synchronized interleaved sampling.
 3. The MCU ofclaim 1, wherein the synchronous sampling controller comprises a pulsegenerator configured to provide a sequence of pulses representing apixel clock operating at a selected frequency.
 4. The MCU of claim 3,wherein the synchronous sampling generator provides the timing signal tothe timing input of the ADC each time the pixel clock generates a pulse.5. The MCU of claim 4, wherein the ADC includes sampling time selectbits configurable to delay a start of a conversion by the ADC to matchtiming of the peripheral module.
 6. The MCU of claim 3, wherein thepulse generator provides a programmed number of pulses corresponding toa number of sensor elements of the peripheral module.
 7. An integratedcircuit comprising: a first analog-to-digital converter (ADC) configuredto receive a first signal from a first source; a second ADC configuredto receive a second signal from a second source; and a synchronoussampling controller configured to provide a timing signal to synchronizethe first and second ADCs to perform synchronized sampling of the firstand second signals, the synchronous sampling controller furtherincluding at least one output terminal configurable to couple to atleast one of the first source and the second source.
 8. The integratedcircuit of claim 7, wherein the synchronous sampling controller isconfigured to output a clock signal to the at least one output terminal,the clock signal synchronized to an internal sampling clock used by thefirst and second ADCs to sample the first and second signals,respectively.
 9. The integrated circuit of claim 7, wherein the timingsignal provides a time base to synchronize the first and second sourcesto the first and second ADCs.
 10. The integrated circuit of claim 7,wherein the timing signal initiates a sampling operation.
 11. Theintegrated circuit of claim 10, wherein: the first and second ADCs areprogrammable; the first ADC includes a first delay corresponding to oneof a plurality of phases for delaying initiation of a conversionoperation for a first period of time after receipt of the timing signal;and the second ADC includes a second delay corresponding to another ofthe plurality of phases for delaying initiation of the conversionoperation for a second period of time after receipt of the timingsignal.
 12. The integrated circuit of claim 11, wherein the first periodof time is equal to the second period of time.
 13. The integratedcircuit of claim 7, wherein the synchronous sampling controllercomprises a phase counter that is clocked from a clock module of thefirst ADC, the phase counter configured to mark a pre-determined numberof equally spaced events, each of the pre-determined number of equallyspaced events representing a phase of the phase counter.
 14. Theintegrated circuit of claim 13, wherein: the first ADC begins itsconversion operation at a first selected phase of the phase counter; andthe second ADC begins its conversion operation at a second selectedphase of the phase counter.
 15. The integrated circuit of claim 14,wherein the first selected phase and the second selected phase areoffset from one another.
 16. A method comprising: receiving a first datasignal at a first input terminal of a circuit; receiving a second datasignal at a second input terminal of the circuit; providing a firstpixel clock signal to a timing input of a first analog-to-digitalconverter (ADC) using a synchronous sampling controller; and providing asecond pixel clock signal to a timing input of a second ADC using thesynchronous sampling controller; providing at least one of the firstpixel clock signal and the second pixel clock signal to an output clockterminal configurable to couple to an external circuit that provides oneof the first data signal and the second data signal; and wherein thefirst and second pixel clock signals synchronize sample timing of thefirst and second ADCs.
 17. The method of claim 16, wherein the first andsecond ADCs comprise first and second successive approximation registerADCs.
 18. The method of claim 16, further comprising: generating thefirst and second pixel clock signals using an ADC synchronizationcontroller; counting a first number of pixels captured by the first ADCto detect; counting a second number of pixels captured by the secondADC; and detecting an end of a frame when one of the first and secondnumbers of pixels exceeds a frame threshold.
 19. The method of claim 16,wherein providing the first and second pixel clock signals comprisescontrolling timing of transitions within the first and second pixelclock signals to control sample timing of the first and second ADCs toperform synchronized interleaved sampling of the first and second datasignals.
 20. The method of claim 16, wherein: receiving the first datasignal includes receiving a signal from a first non-contact sensor; andreceiving the second data signal includes receiving a signal from asecond non-contact sensor.